package com.huitong.common.mybatis.domain.dto;

import com.huitong.common.core.constant.ValidateConstant;
import com.huitong.common.mybatis.utils.PageUtils;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Positive;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 分页信息数据传输对象
 *
 * @author fromdrowning
 * @date 2024/4/28 上午11:58
 */
@Data
public class BasePageDTO implements Serializable {

    /**
     * 序列化版本号
     */
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 页码
     */
    @Positive
    private Integer pageNum;

    /**
     * 每页显示记录数
     */
    @Positive
    private Integer pageSize;

    /**
     * 排序字段 排序字段会在{@link PageUtils}进行参数校验
     */
    private String orderField;

    /**
     * 排序规则 desc降序 asc升序
     */
    @Pattern(regexp = ValidateConstant.ORDER_RULE_REGEX)
    private String orderRule;

}
